Some more build-system finessing:
authorkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Mon, 20 Mar 2006 17:36:35 +0000 (18:36 +0100)
committerkaf24@firebug.cl.cam.ac.uk <kaf24@firebug.cl.cam.ac.uk>
Mon, 20 Mar 2006 17:36:35 +0000 (18:36 +0100)
 1. subdirs-y -> subdir-y (match Linux name, and also obj-y
    is singular so this makes sense).
 2. subdirs can be declared with or without trailing slash
 3. As with Linux, subdirs can be declared in the obj-y list
    but they must be distinguished by a trailing slash

Signed-off-by: Keir Fraser <keir@xensource.com>
xen/Post.mk
xen/arch/x86/Makefile
xen/arch/x86/cpu/Makefile
xen/arch/x86/hvm/Makefile
xen/arch/x86/hvm/svm/Makefile
xen/arch/x86/hvm/vmx/Makefile
xen/drivers/Makefile

index cc0538001681c6a6f830be5c89e01d40374d270f..02008ac7b0bcabc536ee39bcd39e1f1f4a4f5974 100644 (file)
@@ -1,7 +1,16 @@
+# Ensure each subdirectory has exactly one trailing slash.
+subdir-n := $(patsubst %,%/,$(patsubst %/,%,$(subdir-n)))
+subdir-y := $(patsubst %,%/,$(patsubst %/,%,$(subdir-y)))
 
-subdirs-all := $(subdirs-y) $(subdirs-n)
+# Add explicitly declared subdirectories to the object list.
+obj-y += $(patsubst %,%/built_in.o,$(subdir-y))
 
-obj-y += $(patsubst %,%/built_in.o,$(subdirs-y))
+# Add implicitly declared subdirectories (in the object list) to the
+# subdirectory list, and rewrite the object-list entry.
+subdir-y += $(filter %/,$(obj-y))
+obj-y    := $(patsubst %/,%/built-in.o,$(obj-y))
+
+subdir-all := $(subdir-y) $(subdir-n)
 
 built_in.o: $(obj-y)
        $(LD) $(LDFLAGS) -r -o $@ $^
@@ -12,7 +21,7 @@ FORCE:
 %/built_in.o: FORCE
        $(MAKE) -C $*
 
-clean:: $(addprefix _clean_, $(subdirs-all)) FORCE
+clean:: $(addprefix _clean_, $(subdir-all)) FORCE
        rm -f *.o *~ core
 _clean_%/: FORCE
        $(MAKE) -C $* clean
index 014e5f31d808e0ffbc9f84c6970e9196f429c980..3fa20dd7d0b11f656980d651bd33927ce4bf352a 100644 (file)
@@ -1,12 +1,12 @@
 include $(BASEDIR)/Rules.mk
 
-subdirs-y += acpi
-subdirs-y += cpu
-subdirs-y += genapic
-subdirs-y += hvm
+subdir-y += acpi
+subdir-y += cpu
+subdir-y += genapic
+subdir-y += hvm
 
-subdirs-$(x86_32) += x86_32
-subdirs-$(x86_64) += x86_64
+subdir-$(x86_32) += x86_32
+subdir-$(x86_64) += x86_64
 
 obj-y += apic.o
 obj-y += audit.o
index 437f68fb2fa4a8d76492d9b8706f96231eaca9e5..bbb02cb719069a2e6f7804dcb983fdb9a92ce4e2 100644 (file)
@@ -1,7 +1,7 @@
 include $(BASEDIR)/Rules.mk
 
-subdirs-y += mcheck
-subdirs-y += mtrr
+subdir-y += mcheck
+subdir-y += mtrr
 
 obj-y += amd.o
 obj-y += common.o
index c9aefe1c487da7da98511d32a153e2b6ed446d09..84759742b6750b467647faff34e775059596e7c9 100644 (file)
@@ -1,7 +1,7 @@
 include $(BASEDIR)/Rules.mk
 
-subdirs-y += svm
-subdirs-y += vmx
+subdir-y += svm
+subdir-y += vmx
 
 obj-y += hvm.o
 obj-y += i8259.o
index 442d526ea2d0d088a3580831d6cfa50134047dc2..3e26b45e184f2760614db36d3dadd43660982e6f 100644 (file)
@@ -1,7 +1,7 @@
 include $(BASEDIR)/Rules.mk
 
-subdirs-$(x86_32) += x86_32
-subdirs-$(x86_64) += x86_64
+subdir-$(x86_32) += x86_32
+subdir-$(x86_64) += x86_64
 
 obj-y += emulate.o
 obj-y += instrlen.o
index 6b0f548eb3d6daa85d40820715932de6b9ccb14e..221e8aa694bff9fe60a498ab845ff46cb7fda818 100644 (file)
@@ -1,7 +1,7 @@
 include $(BASEDIR)/Rules.mk
 
-subdirs-$(x86_32) += x86_32
-subdirs-$(x86_64) += x86_64
+subdir-$(x86_32) += x86_32
+subdir-$(x86_64) += x86_64
 
 obj-y += io.o
 obj-y += vmcs.o
index e118e2115ac747bfe2b59667cc98e6a4a215210b..b24da03f5e971afb2c54f4c3e723f6fcd66de345 100644 (file)
@@ -1,6 +1,6 @@
 include $(BASEDIR)/Rules.mk
 
-subdirs-y := char/
-subdirs-$(HAS_ACPI) += acpi/
+subdir-y += char
+subdir-$(HAS_ACPI) += acpi
 
 include $(BASEDIR)/Post.mk